import React, { useState } from "react";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { Database, CloudDownload, FileJson } from "lucide-react";
// 移除API导入，使用本地数据模拟

export default function DataGenerationManager() {
  const [isPopulating, setIsPopulating] = useState(false);
  const [isGenerating, setIsGenerating] = useState(false);
  const [actionStatus, setActionStatus] = useState("");

  // 模拟构建知识库（本地实现）
  const handlePopulate = async () => {
    if (
      !window.confirm(
        "确定要从网络自动构建知识库吗？此操作将调用AI并产生消耗。"
      )
    )
      return;
    setIsPopulating(true);
    setActionStatus("正在构建知识库，请稍候...");
    try {
      // 模拟API调用延迟
      await new Promise((resolve) => setTimeout(resolve, 2000));

      // 本地模拟成功结果
      setActionStatus(
        "✅ 知识库构建成功：已生成标准规范、危险点和施工方法模板"
      );
    } catch (error) {
      setActionStatus(`❌ 构建失败: 模拟错误 - ${error.message || "未知错误"}`);
    } finally {
      setIsPopulating(false);
      setTimeout(() => setActionStatus(""), 8000);
    }
  };

  // 模拟生成测试数据（本地实现）
  const handleGenerateData = async () => {
    if (!window.confirm("确定要生成一套完整的测试数据吗？")) return;
    setIsGenerating(true);
    setActionStatus("正在生成测试数据...");
    try {
      // 模拟API调用延迟
      await new Promise((resolve) => setTimeout(resolve, 1500));

      // 本地模拟成功结果
      setActionStatus(
        "✅ 测试数据生成成功：已创建1个项目、3个跨越点和2个施工方案"
      );
    } catch (error) {
      setActionStatus(`❌ 生成失败: 模拟错误 - ${error.message || "未知错误"}`);
    } finally {
      setIsGenerating(false);
      setTimeout(() => setActionStatus(""), 8000);
    }
  };

  return (
    <div className="space-y-6">
      {/* Header */}
      <div className="flex justify-between items-center">
        <div>
          <h3 className="text-xl font-semibold">数据生成管理</h3>
          <p className="text-gray-600 mt-1">
            自动化生成系统数据，快速初始化应用内容
          </p>
        </div>
      </div>

      {/* Data Generation Operations */}
      <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
        <Card className="shadow-lg border-0">
          <CardHeader className="bg-gradient-to-r from-blue-50 to-indigo-50 border-b">
            <CardTitle className="flex items-center gap-2">
              <CloudDownload className="w-5 h-5 text-blue-600" />
              AI构建知识库
            </CardTitle>
          </CardHeader>
          <CardContent className="p-6">
            <div className="space-y-4">
              <p className="text-gray-600">
                从网络自动检索并生成标准规范、危险点、应急措施和施工方法模板，为系统提供专业的知识基础。
              </p>

              <div className="bg-blue-50 p-4 rounded-lg">
                <h4 className="font-medium text-blue-900 mb-2">将会生成：</h4>
                <ul className="text-sm text-blue-700 space-y-1">
                  <li>• 电力行业相关标准规范</li>
                  <li>• 架线工程常见危险点</li>
                  <li>• 常见事故的应急措施模板</li>
                  <li>• 详细的施工方法模板</li>
                  <li>• 自动处理重复数据，合并或更新现有记录</li>
                </ul>
              </div>

              <Button
                onClick={handlePopulate}
                disabled={isPopulating || isGenerating}
                className="w-full bg-blue-600 hover:bg-blue-700"
              >
                <CloudDownload
                  className={`w-4 h-4 mr-2 ${
                    isPopulating ? "animate-spin" : ""
                  }`}
                />
                {isPopulating ? "构建中..." : "开始构建知识库"}
              </Button>
            </div>
          </CardContent>
        </Card>

        <Card className="shadow-lg border-0">
          <CardHeader className="bg-gradient-to-r from-green-50 to-emerald-50 border-b">
            <CardTitle className="flex items-center gap-2">
              <FileJson className="w-5 h-5 text-green-600" />
              一键生成测试数据
            </CardTitle>
          </CardHeader>
          <CardContent className="p-6">
            <div className="space-y-4">
              <p className="text-gray-600">
                快速生成项目、跨越点和施工方案等测试数据，用于系统功能测试和演示。
              </p>

              <div className="bg-green-50 p-4 rounded-lg">
                <h4 className="font-medium text-green-900 mb-2">将会生成：</h4>
                <ul className="text-sm text-green-700 space-y-1">
                  <li>• 1个测试项目（220kV线路工程）</li>
                  <li>• 基础项目信息和状态</li>
                  <li>• 用于功能测试的样本数据</li>
                </ul>
              </div>

              <Button
                onClick={handleGenerateData}
                disabled={isPopulating || isGenerating}
                variant="outline"
                className="w-full border-green-300 text-green-700 hover:bg-green-50"
              >
                <FileJson
                  className={`w-4 h-4 mr-2 ${
                    isGenerating ? "animate-spin" : ""
                  }`}
                />
                {isGenerating ? "生成中..." : "开始生成测试数据"}
              </Button>
            </div>
          </CardContent>
        </Card>
      </div>

      {/* Status Display */}
      {actionStatus && (
        <Card className="shadow-lg border-0">
          <CardHeader className="bg-gradient-to-r from-gray-50 to-gray-100 border-b">
            <CardTitle className="flex items-center gap-2">
              <Database className="w-5 h-5 text-gray-600" />
              操作状态
            </CardTitle>
          </CardHeader>
          <CardContent className="p-6">
            <p className="text-center text-gray-700 p-4 bg-gray-100 rounded-md font-medium">
              {actionStatus}
            </p>
          </CardContent>
        </Card>
      )}

      {/* Usage Instructions */}
      <Card className="shadow-lg border-0">
        <CardHeader className="bg-gradient-to-r from-yellow-50 to-amber-50 border-b">
          <CardTitle className="flex items-center gap-2">
            <Database className="w-5 h-5 text-yellow-600" />
            使用说明
          </CardTitle>
        </CardHeader>
        <CardContent className="p-6">
          <div className="space-y-4 text-gray-600">
            <div>
              <h4 className="font-medium text-gray-900 mb-2">建议使用顺序：</h4>
              <ol className="list-decimal list-inside space-y-1 text-sm">
                <li>首先使用"AI构建知识库"生成基础的知识模板</li>
                <li>然后使用"生成测试数据"创建项目和跨越点数据</li>
                <li>在各管理页面中根据实际需要调整和完善数据</li>
                <li>系统已内置南方电网风险评估标准，无需额外配置</li>
              </ol>
            </div>

            <div>
              <h4 className="font-medium text-gray-900 mb-2">注意事项：</h4>
              <ul className="list-disc list-inside space-y-1 text-sm">
                <li>AI构建知识库需要调用外部API，可能需要几分钟时间</li>
                <li>生成的数据仅用于测试，实际使用时请根据项目实际情况调整</li>
                <li>如果生成失败，请检查网络连接或稍后重试</li>
                <li>系统内置标准化的风险评估标准，确保评估结果的一致性</li>
              </ul>
            </div>
          </div>
        </CardContent>
      </Card>
    </div>
  );
}
